#pragma once

struct ModelSelection
{
	std::set<M2Model*> selectedModels;
};

class ModelSelect : public Singleton<ModelSelect>
{
	std::vector<ModelSelection> m_lastSels;
	ModelSelection m_curSel;
	bool m_modelClicked;
	M2Model* m_pClicked;
	Vertex2F m_mouseLast;
public:
	ModelSelect();

	bool OnMouseDown(Vertex2F pos);
	bool OnMouseUp(Vertex2F pos);

	bool OnMouseMove(Vertex2F pos);

	void UpdatePos(Vertex2F pos) { m_mouseLast = pos; }

	bool GetModelSelected() { return m_modelClicked; }
};

#define sModelSel (*ModelSelect::GetInstance())